#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：21.队列.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-04 16:31
'''
import threading
from queue import Queue # 队列对象：标准库

num =0

# 定义了一个队列对象
q = Queue() # 队列是数据安全的数据结构

def add():
    global num
    for _ in range(100000):
        num += 1



def sub():
    global num
    for _ in range(100000):
        num -= 1

t1 = threading.Thread(target=add)
t2 = threading.Thread(target=sub)

t1.start()
t2.start()

t1.join()
t2.join()
print(num)

# def add(queue):
#     for _ in range(100000):
#         value = queue.get() # 在队列中获取一个值
#         value += 1
#         queue.put(value)
#
#
#
# def sub(queue):
#     for _ in range(100000):
#         value = queue.get() # 在队列中获取一个值
#         value -= 1
#         queue.put(value)
# # 使用主线程想队列传递初始值
# q.put(0) # 上传数据，一次只能上传一个值
# t1 = threading.Thread(target=add, args=(q, ))
# t2 = threading.Thread(target=sub, args=(q, ))
#
# t1.start()
# t2.start()
#
# t1.join()
# t2.join()
#
# # 使用主线程获取最终计算结果
# result = q.get()
# print(f"最终计算结果为：{result}")